package com.lbc.service;

import com.lbc.bean.dto.*;
import com.lbc.bean.entity.User;
import com.lbc.bean.vo.*;

import java.util.Date;
import java.util.List;

/**
 * @author xyl
 * @date 2021-03-03 10:23
 */
public interface UserService {
    User getUserById(Integer userId);

    List<String> getRolesByUserId(Integer userId);

    User getUserByUsername(String username);

    User getUserByEmail(String email);

    void sendMail(String mail, String key);

    int add(User user);

    UserVO getUserVOById(Integer userId);

    int resetPassword(ResetPasswordDTO resetPasswordDTO);

    int adminAddUser(AdminAddUserDTO user);

    int modifyUserState(Integer userId, Integer state);

    List<UserVO> getUserList(Integer roleId, Integer state,String searchKey);

    int modifyUserLastLoginTime(Integer userId, Date lastLoginTime);

    List<RoleVO> selectRoleCount();

    int adminRemoveUser(Integer userId);

    int getRoleIdByUserId(Integer userId);

    List<UserIdAndNameVO> getSchoolAll();

    List<UserIdAndNameVO> getOrganizationAll();

    int adminAddOrganization(OrganizationDTO organization);

    int adminAddSchool(SchoolDTO school);

    int adminModifySchool(SchoolDTO school);

    int adminModifyParent(ParentDTO parent);

    List<OrganizationPageVO> getOrganizationPage(String searchKey);

    List<SchoolPageVO> getSchoolPage(String searchKey);

    int adminModifyOrganization(OrganizationDTO organization);

    SchoolInfoVO getMySchoolInfo(Integer userId);

    OrganizationInfoVO getMyOrganizationInfo(Integer userId);
}
